package com.th.coupon.executor;

import com.th.coupon.common.vo.SettlementInfo;
import com.th.coupon.constant.RuleFlag;

/**
 * 优惠卷规则处理器接口定义
 * @author 涂航
 */
public interface RuleExecutor {


    /**
     * 规则类标记
     * @return {@link RuleFlag} 规则类
     */
    RuleFlag ruleConfig();

    /**
     * 优惠卷规则计算
     * @param info {@link SettlementInfo} 包含了选择的优惠卷
     * @return {@link SettlementInfo} 修正过的结算信息
     */
    SettlementInfo computeRule(SettlementInfo info);


}
